package org.yefei.homeworkday29.one1;

import java.io.*;
import java.net.*;
import java.util.*;

public class LoginClient {
	// 1:服务器上存有多个用户对象（包括用户和密码），客户端通过socket登录，如果成功，输出欢迎信息，失败给出提示。
	public static void main(String[] args) {
		Socket s = null;
		ObjectInputStream ois = null;
		Scanner sc = new Scanner(System.in);
		try {
			s = new Socket("localhost", 5555);
			InputStream is = s.getInputStream();
			ois = new ObjectInputStream(is);
			// 登录
			OutputStream os = s.getOutputStream();
			ObjectOutputStream oos = new ObjectOutputStream(os);
			BufferedReader br = new BufferedReader(new InputStreamReader(is));
			User user = new User();
			while (true) {
				System.out.println("请输入用户名：");
				user.setUserName(sc.nextLine());
				System.out.println("请输入密码：");
				user.setPassWord(sc.nextLine());
				oos.writeObject(user);
				oos.flush();
				oos.reset();// public void reset()
				// throws IOException
				// 重置将忽略已写入流的任何对象的状态。状态复位可作为一种新的对象相同。流中的当前点标记为重置，所以相应的对象输入流将在同一点重置。以前写入流的对象将不会被称为已经存在于流中的对象。他们将再次被写入流。

				// 接收回复
				String reply = br.readLine();
				System.out.println(reply);
				if (reply.contains("欢迎登录！"))
					break;
			}
		} catch (

		Exception e) {
			e.printStackTrace();
		} finally {
			if (ois != null)
				try {
					ois.close();
				} catch (Exception e) {
					e.printStackTrace();
				}
			if (s != null)
				try {
					s.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
		}
	}

}
